// BSGS 算法 
// 求解高次同余方程
// 给定整数 a, b, p，其中 a, p 互质
// 求满足 a^x ≡ b (mod p) 的最小非负整数 x
// 测试链接 ：https://www.luogu.com.cn/problem/P3846
// 相关帖子 ：https://www.cnblogs.com/dx123/p/16748367.html
// 相关帖子 ：https://oi-wiki.org/math/number-theory/discrete-logarithm/
// 提交以下的code，可以直接通过

#include <bits/stdc++.h>

using namespace std;

#define ll long long

// 时间复杂度 O(sqrt(p))
ll bsgs(ll a, ll b, ll p)
{
    a %= p; b %= p;
    if(b == 1) return 0; // x = 0
    ll m = ceil(sqrt(p)); // 根号 p 上取整
    ll t = b;
    unordered_map<int, int> hash; // (b*a^j, j)
    hash[b] = 0;
    for(int j = 1; j < m; ++j)
    {
        t = t * a % p; // 求 b*a^j
        hash[t] = j;
    }

    ll am = 1;
    for(int i = 1; i <= m; ++i) am = am * a % p; // 求 a^m
    t = 1;
    for(int i = 1; i <= m; ++i)
    {
        t = t * am % p; // 求 (a^m)^i
        if(hash.count(t)) return i * m - hash[t]; // x = i * m - j
    }
    return -1; // 无解
}

int main()
{
    int a, p, b;
    scanf("%d%d%d", &p, &a, &b);
    int ans = bsgs(a, b, p);
    if(ans == -1) puts("no solution");
    else printf("%lld\n", ans);

    return 0;
}